package com.jt.controller;

import com.jt.pojo.Item;
import com.jt.pojo.ItemDesc;
import com.jt.vo.EasyUITable;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.jt.service.ItemService;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/item")
public class ItemController {

    @Autowired
    private ItemService itemService;

    /**
     * 商品信息的分页查询
     */
    @RequestMapping("/query")
    public EasyUITable findItemByPage(Integer page, Integer rows) {
        return itemService.findItemByPage(page, rows);
    }

    /**
     * 业务需求:完成商品入库操作,返回系统vo对象
     * url:/item/save
     * 参数:整个form表单 + 商品描述ItemDesc
     * 返回值:SysResult
     */
    @RequestMapping("/save")
    public SysResult saveItem(Item item, ItemDesc itemDesc) {
        itemService.saveItem(item, itemDesc);
        return SysResult.success();
        //全局异常处理
      /*  try {
            itemService.saveItem(item);
            return SysResult.success();
        } catch (Exception e) {
            e.printStackTrace();
            return SysResult.fail();
        }*/
    }

    /**
     * 完成商品信息修改
     * url:http://localhost:8091/item/update
     * 参数: 整个form表单
     * 返回值: SysResult对象
     */
    @RequestMapping("/update")
    public SysResult updateItem(Item item, ItemDesc itemDesc) {
        itemService.updateItem(item, itemDesc);
        return SysResult.success();
    }

    /**
     * 完成商品删除操作
     * url:http://localhost:8091/item/delete
     * 参数:ids
     * 返回值:SysResult对象
     */
    @RequestMapping("/delete")
    public SysResult deleteItems(Long[] ids, ItemDesc itemDesc) {
        itemService.deleteItems(ids, itemDesc);
        return SysResult.success();
    }

    /**
     * 上下架操作
     * url1:/item/instock     status=2
     * url2:/item/reshelf     status=1
     * 参数:ids
     * 返回值:SysResult对象
     */
    @RequestMapping("/updateStatus/{status}")
    public SysResult updateStatus(@PathVariable Integer status, Long[] ids) {
        itemService.updateStatus(status, ids);
        return SysResult.success();
    }

    /**
     * 根据ItemId查询ItemDesc的描述信息
     * url:url:http://localhost:8091/item/query/item/desc/...
     * 参数:restFul形式
     * 返回值:SysResult
     */
    @RequestMapping("/query/item/desc/{itemId}")
    public SysResult findItemDescById(@PathVariable Long itemId) {
        return SysResult.success(itemService.findItemDescById(itemId));

    }
}
